#ifndef _FIG_BOSS_ATTACKMOVE_MANAGER_H_
#define _FIG_BOSS_ATTACKMOVE_MANAGER_H_

class FIGEnemyBoss;
class FIGBossAttackMove;


class FIGBossAttackMoveManager	
{
public:

	enum ATTACK_MOVEMENT
	{
		ATTACK_MOVEMENT_GODOWN_SPEEDLY,
		ATTACK_MOVEMENT_RIGHT_AND_LEFT,
		ATTACK_MOVEMENT_CIRCLE,
		ATTACK_MOVEMENT_ROTATE_FURIOUSLY,
		ATTACK_MOVEMENT_ROTATE_LEFTRIGHT_TOSHOOT,

		ATTACK_MOVEMENT_C,

	};

	static FIGBossAttackMoveManager&			Instance();
	

	

	
	void						Tick(float dt);
	bool						ShouldDisableOtherMovement();
	bool						ShouldDisableAttack();
	bool						ShouldDisableBoneMovement();
	void						HandleMe(FIGEnemyBoss* pBoss);
	void						End();
	void						Clear();

	FIGEnemyBoss*				GetBoss() { return m_pBoss; };
	void						Start(ATTACK_MOVEMENT Type, float Delay);
	bool						IsActive() const; 
	
	
protected:

	
	FIGEnemyBoss*				m_pBoss;
	FIGBossAttackMove*			m_pCurrentAttackMove;

	FIGBossAttackMove*			m_pAttackMoves[ATTACK_MOVEMENT_C];

	FIGBossAttackMoveManager();
	
	
};

#endif			 // _FIG_BOSS_ATTACKMOVE_MANAGER_H_